package com.sxbbc.common.core.service;

import com.function.common.RestResponse;
import com.sxbbc.common.core.dto.jz.ProductDetailVo;
import com.sxbbc.common.core.dto.jz.ProductVo;
import com.sxbbc.common.core.entity.jz.ProSkuDetail;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;

/**
 * <p>
 * 商品sku详情表 服务类
 * </p>
 *
 * @author leehao
 * @since 2019-05-24
 */
public interface IProSkuDetailService extends IService<ProSkuDetail> {

    /**
     * 检查sku编码重复性
     * @param bid 店铺id
     * @param codeList sku编码
     * @param proCode 商品编码
     * @author leehao
     * @return java.util.List<java.lang.String>
     */
    List<String> queryRepeatSkuCode(Integer bid, List<String> codeList,String proCode);

    /**
     * 商品编码查询对应的sku规格 只查有效的规格
     * @param proCode 商品编码
     * @author leehao
     * @return sku集合
     */
    List<ProSkuDetail> querySkuListByProCode(String proCode);

    /**
     * 查询商品的价格与库存
     * @param productVo vo对象
     * @author leehao
     * @return com.sxbbc.common.core.dto.jz.ProductDetailVo
     */
    ProductDetailVo selectPriceAndStock(ProductVo productVo);

    /**
     * 查询商品详情的集合
     * @param proCode 查询条件
     * @author leehao
     * @return 分页对象
     */
    List<ProSkuDetail> queryProductDetailList(String proCode,Integer bid);

    /**
     * 处理删除规格
     * @param skuVal 规格值
     * @param proCode 商品编码
     * @author leehao
     * @return com.function.common.RestResponse
     */
    RestResponse handleDeleteSku(String skuVal, String proCode);

	int updateQtyVersion(ProSkuDetail sku);

	void updateSaleqty(ProSkuDetail detail);
}
